// <!-- HTML结构 -->
// <ol id="test-list">
//     <li class="lang">Scheme</li>
//     <li class="lang">JavaScript</li>
//     <li class="lang">Python</li>
//     <li class="lang">Ruby</li>
//     <li class="lang">Haskell</li>
// </ol>
//按字符串顺序重新排序DOM节点：

 var list=document.getElementById('test-list');
var a=[];//数组可以装节点
for(var i=0;i<list.children.length;i++){
    a.push(list.children[i]);//把每个节点都插入到a
}
console.log(a);//[li.lang, li.lang, li.lang, li.lang, li.lang]

a.sort(function(x, y){
    if (x.innerText > y.innerText){
    return 1;
    }else if (x.innerText < y.innerText){
    return -1;
    }else {
    return 0;
    }
   });
   
console.log(a.sort((x,y)=>x<y));
for(let i=0;i<a.length;i++){
    list.appendChild(a[i]);//如果插入的节点存在，则会先删除原来的节点再插入
}
//测试
;(function () {
    var
        arr, i,
        t = document.getElementById('test-list');
    if (t && t.children && t.children.length === 5) {
        arr = [];
        for (i=0; i<t.children.length; i++) {
            arr.push(t.children[i].innerText);
        }
        if (arr.toString() === ['Haskell', 'JavaScript', 'Python', 'Ruby', 'Scheme'].toString()) {
            console.log('测试通过!');
        }
        else {
            console.log('测试失败: ' + arr.toString());
        }
    }
    else {
        console.log('测试失败!');
    }
})();